const CompressionPlugin = require('compression-webpack-plugin');//gzip压缩
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')//代码压缩

module.exports = {
    // baseUrl: '/',
    publicPath:'/admin',
    outputDir: 'admin', //打包文件名称
    assetsDir: 'assets', //存放资源目录名称
    // 设置生产环境是否使用sourcemap
    productionSourceMap: false,
    // 是否在保存时使用`eslint-loader`进行检查
    lintOnSave:true,
    chainWebpack: config => {
        // 移除 prefetch 插件
        config.plugins.delete("prefetch");
        // 移除 preload 插件
        config.plugins.delete('preload');
        // 压缩代码
          config.optimization.minimize(true);
        // 分割代码
          config.optimization.splitChunks({
            chunks: 'all'
        })
        // 给每一个scss文件引入全局scss文件
        const oneOfsMap = config.module.rule('scss').oneOfs.store
        oneOfsMap.forEach(item => {
            item
                .use('sass-resources-loader')
                .loader('sass-resources-loader')
                .options({
                    resources: ['./src/common/styles/color.scss', './src/common/styles/common.scss']
                })
                .end()
        })
    },
    configureWebpack:config => {
        console.log(config);
        if (process.env.NODE_ENV === 'production') {
            return {
                plugins: [
                    // 压缩代码
                    new CompressionPlugin({
                        test: /\.js$|\.html$|.\css/, // 匹配文件名
                        threshold: 10240, // 对超过10k的数据压缩
                        deleteOriginalAssets: false // true 不删除源文件 false 删除源文件
                    }),
                    // new UglifyJsPlugin({
                    //     uglifyOptions: {
                    //         //生产环境自动删除console
                    //         compress: {
                    //             drop_debugger: true,
                    //             drop_console: true,
                    //             pure_funcs: ['console.log']
                    //         }
                    //     },
                    //     sourceMap: false,
                    //     parallel: true
                    // })
                ],
            }
        } 
    },
    devServer: {
        open: true, //是否自动打开网页
        host: '0.0.0.0', //主机名
        port: 9527, //端口号
        https: false, //是否启用https
        hotOnly: false,
        proxy: {
            '/api': {
                /* 目标代理服务器地址 */
                target: '192.168.1.200',
                /* 允许跨域 */
                changeOrigin: true,
            },
        },
    },
}

